
#ifndef __DYNAMIC_ODOM_H_
#define __DYNAMIC_ODOM_H_
#include <string>
#include "rclcpp/rclcpp.hpp"
// struct odom_param
// {
//     double max_load;       // 最大负载数据
//     double min_load;       // 最小负载数据
//     double max_factor;     // 最大负载对应系数
//     double min_factor;     // 最小负载对应系数
//     double dynamic_factor; // 
//     odom_param()
//     {
//         max_load = 1.0;
//         min_load = 0.0;
//         max_factor = 1.0;
//         min_factor = 1.0;
//         dynamic_factor = 1.0;
//     }
// };

class DynamicOdom
{
public:
    double k_ = 1.0;          
    double offset_ = 0.0;        
    double max_load_ = 1.0;
    double min_load_ = 0.0;
    double max_factor_ = 1.0;
    double min_factor_ = 1.0;
    double dynamic_factor_ = 1.0;
public:
    // Default constructor
    DynamicOdom();
    
    void setMaxLoad(double load) { max_load_ = load; }
    void setMinLoad(double load) { min_load_ = load; }
    void setMaxFactor(double factor) { max_factor_ = factor; }
    void setMinFactor(double factor) { min_load_ = factor; }
    double getFactor(double load);
};

#endif